package cn.dengta.webapp.risk.bean;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

@Getter
@Setter
public class RiskSkynet extends RiskBase {

	/**
	 * register ：注册，
	 * login ：登录
	 */
	private String eventId;

	private final SkynetData data = new SkynetData();

	public RiskSkynet() {
		init();
	}

	@Getter
	@Setter
	@Accessors(chain = true)
	public static class SkynetData extends AbstractRiskData {

		/** 是否区分账号体系同公司不同 app 接入，未统一账号体系，不同app，不同用户出现相同账号，需要区分账号体系，0，不区分，1，区分 */
		private Integer isTokenSeperate = 0;

		/** 时间戳（毫秒） */
		private Long timestamp;

		/** 应用端操作系统类型：android、ios、web、weapp=小程序 */
		private String os;

		/**
		 * 应用版本号，传入当前应用或服务正在使用的版本号，格式为 3 个点 4 段数字，每段数字最多 4 位，
		 * 例如3.2.1.1234。不足 4 段的请补 0，例如 2.1.5 传入 2.1.5.0。多于 4 段的取前 4 段，例如2.1.5.1.1 传入 2.1.5.1
		 */
		private String appVersion;

		/** 手机号的 Sha256 加密串 */
		private String phoneSha256;

		/** 手机号的 phoneMd5 加密串 */
		private String phoneMd5;

		/**
		 * 注册方式：包括手机号码一键注册、手机号验证码注册、第三方授权、用户名密码注册
		 * 手机号码一键注册：phoneOnePass
		 * 手机号验证码注册：phoneMessage
		 * 第三方授权：signupPlatform
		 * 用户名密码注册：userPassword
		 *
		 * @see SkynetType
		 */
		private String type;

		/** 加密后的用户密码，可选择任意一种加密方式进行加密，但必须确保同一密码加密后是唯一的且一致的 */
		private String hashPassword;

		/** 该手机号是否已经被注册，可选值：0，1 */
		private Integer isPhoneExist;

		/** 新用户注册使用手机号的 MD5字符串，MD5 加密字符串格式为 32 位小写 */
		private String phone;

		/** 手机用户的国家代码，中国大陆区手机号填写0086 */
		private String countryCode;

		/** 注册邮箱（目前仅限注册时需要） */
		private String email;

		/** 用户昵称 */
		private String nickName;

		/** 性别，可选值：male,female */
		private String sex;

		/** 用户等级，针对不同等级的用户可配置不同拦截策略 */
		private Integer level;

		/** 用户名密码验证结果，可选值（1：成功，0：失败） */
		private Integer valid;

		@Override
		protected void setBody(String body) {
			timestamp = System.currentTimeMillis();
		}

	}

}
